package example.mapper;

import example.dto.*;
import example.entity.SecondmentContentInfo;
import example.entity.SecondmentDistributeInfo;
import example.entity.TaskList;
import example.vo.SecondmentContentInfoVO;
import example.vo.SecondmentInfoVO;

import java.util.List;
import java.util.Set;

public interface SecondmentContentInfoMapper {
    /** 保存借调excel的主体内容 */
    void save(SecondmentContentInfo secondmentContentInfo);

    int checkSecondmentContentExists(SecondmentContentInfo secondmentExcelInfo);

    List<SecondmentInfoVO> getFieldsValueBySecondmentId(SecondmentInfoDTO secondmentInfoDTO);

    void deleteById(Long id);

    SecondmentContentInfo getNowTask(TaskList task);

    List<SecondmentInfoVO> getFieldsValueBySecondmentIdAndName(SecondmentInfoDTO secondmentInfoDTO);

    List<SecondmentContentInfoVO> getSecondmentContentBySecondmentIdAndNameAndState(SecondmentConfirmDTO secondmentConfirmDTO);

    void changeState(StateDTO stateDTO);

    void changeTip(TipDTO tipDTO);

    List<String> getState(SecondmentInfoDTO secondmentInfoDTO);

    void deleteBySecondmentId(Long secondmentId);

    void changeAllState(SecIdAndDepNameDTO secIdAndDepNameDTO);

    void changeNumberProblemState(SecIdAndDepNameDTO secIdAndDepNameDTO);

    List<SecondmentContentInfo> getAllBySecondmentId(SecondmentInfoDTO secondmentInfoDTO);

    void changeSameRankProblemState(Long id);

    void changeGapYearTrueState(Long id);

    void changeGapYearFalseState(Long id);

    Set<Long> searchSecondmentIdByName(SearchSecondmentDTO searchSecondmentDTO);

    Set<Long> searchSecondmentIdByNumber(SearchSecondmentDTO searchSecondmentDTO);

    SecondmentContentInfo getUserInfoById(Long id);

    void changeConfirm(Long id);

    List<Boolean> getC(SecondmentContentInfo secondmentContentInfo);
    List<Boolean> getCById(SecondmentContentInfo secondmentContentInfo);

    SecondmentContentInfo getById(Long id);

    void setConfirm(Long id);

    Set<Long> searchSecondmentIdByName1(SearchSecondmentDTO searchSecondmentDTO);

    Set<Long> searchSecondmentIdByNumber1(SearchSecondmentDTO searchSecondmentDTO);

    List<SecondmentContentInfo> getAllExportExcelInfo(ExportExcelDTO exportExcelDTO);

    List<SecondmentContentInfo> getExportExcelInfo(ExportExcelDTO exportExcelDTO);

    Integer countNumberOfDepartmentAndSecondment(SecondmentInfoDTO secondmentInfoDTO);
}
